package org.convallaria.system.biz.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.convallaria.infrastruct.db.mapper.BaseMapperX;
import org.convallaria.system.biz.entity.SysRole;

/**
 * 系统角色 Mapper 接口
 * 
 * 功能特性：
 * - 继承BaseMapperX，支持多表联查
 * - 支持批量操作的高性能实现
 * - 支持忽略逻辑删除的查询方法
 * - 提供统计和聚合查询方法
 * - 支持自定义SQL片段复用
 * 
 * 业务说明：
 * - 角色管理是权限系统的核心组件
 * - 支持多租户数据隔离
 * - 支持软删除机制
 * - 支持乐观锁并发控制
 * - 支持数据权限范围控制
 * - 支持菜单和部门树选择关联显示控制
 * 
 * 数据权限：
 * - 全部数据权限：可以查看所有数据
 * - 自定数据权限：可以查看自定义范围的数据
 * - 本部门数据权限：只能查看本部门的数据
 * - 本部门及以下数据权限：可以查看本部门及下级部门的数据
 * 
 * 关联关系：
 * - 与用户表：多对多关系，通过sys_user_role关联表
 * - 与菜单表：多对多关系，通过sys_role_menu关联表
 * - 与部门表：多对多关系，通过sys_role_dept关联表
 * - 与租户表：多对一关系，通过tenant_id关联
 * 
 * 数据约束：
 * - role_name：角色名称，必填
 * - role_key：角色权限字符串，在同一租户内唯一，必填
 * - role_sort：显示顺序，数值越小越靠前
 * - data_scope：数据范围，1-4之间的值
 * - status：角色状态，0=正常，1=停用
 * 
 * 数据安全：
 * - 支持角色数据权限控制
 * - 支持角色状态控制（正常/停用）
 * - 支持角色权限字符串唯一性约束
 * - 支持超级管理员角色保护
 * 
 * @author convallaria
 * @since 1.0.0
 */
@Mapper
public interface SysRoleMapper extends BaseMapperX<SysRole> {

}